#ifndef GAME_H_
#define GAME_H_

#include <stack>
#include <vector>

#include "GameWindow.h"
#include "loader/ResourceCollection.h"
#include "event/SDLEventDispatcher.h"
#include "world/SimpleWorld.h"
#include "world/Camera.h"
#include "gui/gl/GLGUI.h"

class Game {
public:
	enum RunLevel {
		EXIT,
		RUNNING
	};

	Game();
	void run();
	virtual ~Game();
protected:
	GameWindow *window;
	std::vector<EventDispatcher*> eventDispatchers;
	ResourceCollection *resources;
	SimpleWorld *world;
	GUI *gui;

	unsigned int ticksPerSecond;
	RunLevel runLevel;
};

#endif /* GAME_H_ */
